ASP.Net MVC-তে Action Filters হল সেই ফিল্টারগুলি যা কন্ট্রোলার অ্যাকশনের আগে এবং পরে কার্যকর হয়। এই ফিল্টারগুলি সাধারণত প্রাক-অ্যাকশন বা পোস্ট-অ্যাকশন লজিক কার্যকর করার জন্য ব্যবহৃত হয়। ASP.Net MVC আপনাকে কাস্টম Action Filter তৈরি করার সুযোগ দেয়, যা আপনার অ্যাপ্লিকেশন থেকে বিশেষ চাহিদা অনুযায়ী ফিল্টারিং কার্যক্রম নির্ধারণ করতে সাহায্য করে।
কাস্টম Action Filter তৈরি করার মাধ্যমে আপনি বিশেষ কার্যক্রম (যেমন লগিং, অথেন্টিকেশন, অথোরাইজেশন, কাস্টম বৈধতা চেক, ইত্যাদি) প্রয়োগ করতে পারেন।
ASP.Net MVC-তে কাস্টম Action Filter তৈরি করতে আপনাকে ActionFilterAttribute ক্লাসটি হেরিটেজ (inherit) করতে হবে এবং তার মধ্যে OnActionExecuting
এবং OnActionExecuted
মেথডগুলি ওভাররাইড করতে হবে। এর মাধ্যমে আপনি কন্ট্রোলার অ্যাকশন কলের আগে এবং পরে কাস্টম কার্যক্রম পরিচালনা করতে পারেন।
ধরা যাক আমরা একটি কাস্টম Action Filter তৈরি করতে চাই যা প্রতিটি রিকোয়েস্টের লগ তৈরি করবে।
প্রথমে, একটি নতুন ক্লাস তৈরি করুন যা ActionFilterAttribute
ক্লাস থেকে হেরিট করবে। এরপর, OnActionExecuting
এবং OnActionExecuted
মেথডগুলিকে ওভাররাইড করুন।
using System.Web.Mvc;
using System.IO;
public class LogActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// রিকোয়েস্ট আসার আগে কার্যক্রম
string logMessage = $"Action '{filterContext.ActionDescriptor.ActionName}' started at {DateTime.Now}";
File.AppendAllText(HttpContext.Current.Server.MapPath("~/App_Data/ActionLog.txt"), logMessage + Environment.NewLine);
base.OnActionExecuting(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
// রিকোয়েস্ট পরবর্তী কার্যক্রম
string logMessage = $"Action '{filterContext.ActionDescriptor.ActionName}' completed at {DateTime.Now}";
File.AppendAllText(HttpContext.Current.Server.MapPath("~/App_Data/ActionLog.txt"), logMessage + Environment.NewLine);
base.OnActionExecuted(filterContext);
}
}
এখানে, OnActionExecuting
মেথডে রিকোয়েস্ট আসার আগে একটি লগ তৈরি করা হচ্ছে এবং OnActionExecuted
মেথডে অ্যাকশন শেষ হওয়ার পরে একটি লগ তৈরি করা হচ্ছে।
আপনার কাস্টম Action Filter তৈরি করার পরে, আপনি এটি কন্ট্রোলার বা একক অ্যাকশন মেথডে প্রয়োগ করতে পারেন। এটি করতে, LogActionFilter
অ্যাট্রিবিউট ব্যবহার করুন।
[LogActionFilter]
public class HomeController : Controller
{
public ActionResult Index()
{
// কিছু কার্যক্রম
return View();
}
}
এখানে, HomeController
কন্ট্রোলারে থাকা সমস্ত অ্যাকশন মেথডে কাস্টম Action Filter প্রযোজ্য হবে।
public class HomeController : Controller
{
[LogActionFilter]
public ActionResult Index()
{
// কিছু কার্যক্রম
return View();
}
}
এখানে, কেবলমাত্র Index
অ্যাকশন মেথডে কাস্টম Action Filter প্রযোজ্য হবে।
ASP.Net MVC-তে কাস্টম Action Filter তৈরি করা একটি শক্তিশালী পদ্ধতি যা আপনাকে কন্ট্রোলার অ্যাকশনের আগে এবং পরে নির্দিষ্ট কার্যক্রম পরিচালনা করতে সাহায্য করে। কাস্টম ফিল্টার ব্যবহার করে আপনি লগিং, অথেন্টিকেশন, অথোরাইজেশন, ডেটা ভ্যালিডেশন এবং অন্যান্য অনেক কার্যক্রম কন্ট্রোল করতে পারেন। এটি কোড পুনঃব্যবহারযোগ্যতা এবং মেইনটেনেন্স সহজ করে তোলে, কারণ আপনি একই ফিল্টারটি বিভিন্ন কন্ট্রোলার এবং অ্যাকশন মেথডে প্রয়োগ করতে পারেন।
common.read_more